"""
企业微信机器人常量定义
"""

from pathlib import Path
from enum import Enum

# 配置文件相关常量
DEFAULT_KEY_PATH = Path.home().joinpath('.corpwechatbot_key')
DEFAULT_CONFIG_PATH = Path.home().joinpath('.corpwechatbot_config')

# API 相关常量
BASE_API_URL = 'https://qyapi.weixin.qq.com{}'
DEFAULT_MEDIA_API = ''


# 应用的token
ACCESS_TOKEN_FILE_NAME = 'token.json'
ACCESS_TOKEN_EXPIRE_SECOND = 7200

# 消息队列限制
MAX_QUEUE_SIZE = 20  # 官方限制每分钟20条消息

# 错误消息映射
ERROR_MESSAGES = {
    'image_error': '图片文件不合法',
    'text_error': '文本消息不合法',
    'news_error': '图文消息内容不合法',
    'markdown_error': 'markdown内容不合法',
    'voice_error': '语音文件不合法',
    'video_error': '视频文件不合法',
    'file_error': '文件不合法',
    'card_error': '卡片消息不合法',
    'media_error': 'media_id获取失败',
    'mpnews_error': 'mp图文消息不合法',
    'taskcard_error': '任务卡片消息不合法',
    'create_chat_error': '群聊创建失败，人数不能低于2'
}

class MediaType(Enum):
    """媒体类型枚举"""
    IMAGE = 'image'
    VOICE = 'voice'
    VIDEO = 'video'
    FILE = 'file'
    
    @classmethod
    def get_media_types(cls):
        """获取所有媒体类型"""
        return {item.value for item in cls} 